<article>
	<h1><?php echo $GLOBALS['title'] ?></h1>
	<p>函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。(将完成某一特定功能的代码集合起来，可以重复使用的代码块。)</p>
	<h3>优点</h3>
	<ul>
		<li>使程序更加简洁</li><p></p>
		<li>逻辑更有条理</li><p></p>
		<li>调用更方便</li><p></p>
		<li>维护更加容易</li><p></p>
	</ul>
	<h2><a>函数的声明方式(创建)</a></h2>
	<h3>基本语法</h3>
	<pre><code><?php echo htmlspecialchars('
<script type="text/javascript">
	function myFunction(){
		alert("Hello World!");
	}
</script>
') ?></code></pre>
	<h3>字面量定义</h3>
	<pre><code><?php echo htmlspecialchars('
<script type="text/javascript">
	var myFunction = function  () {
		alert("Hello World!");
	}
</script>
') ?></code></pre>
	<h3>函数的调用方式</h3>
	<p>通过括号来调用：函数名()</p>
	<p>通过触发事件来调用</p>
	<pre><code><?php echo htmlspecialchars('
<script type="text/javascript">
	var myFunction = function  () {
		alert("Hello World!");
	}
	myFunction();
</script>
<div id="box" onclick="myFunction()"></div>
') ?></code></pre>
	<h3>创建\调用函数注意问题</h3>
 	<ol>
 		<li>如果两个函数的命名相同，后面的将会覆盖前面的函数。</li><p></p>
 		<li>以基本语法声明的函数，会在页面载入的时候提前解析到内存中，  以便调用。所以可以在函数的前面调用。但是以字面量形式命名的函数，会在执行到他的时候，才进行赋值。  所以只能在函数的后面调用</li><p></p>
 		<li>在不同的<code><?php echo htmlspecialchars('<script></script>') ?></code>块中，因为浏览器解析的时候是分块  解析的，所以前面的块不能调用后面块的函数，所以在不同的块  之间调用函数的时候，应该先定义后调用。</li>
 	</ol>
 	<h2><a>调用带参数的函数</a></h2>
 	<p>在调用函数时，您可以向其传递值，这些值被称为参数。</p>
 	<p>这些参数可以在函数中使用。</p>
 	<p>您可以发送任意多的参数，由逗号 (,) 分隔：</p>
 	<pre><code><?php echo htmlspecialchars('
<script type="text/javascript">
	myFunction(argument1,argument2)
	//实参:调用函数的时候，在括号中传入的变量或值叫做  实参。
</script>') ?></code></pre>
	<p>当您声明函数时，请把参数作为变量来声明：</p>
 	<pre><code><?php echo htmlspecialchars('
<script type="text/javascript">
	function myFunction(var1,var2){
		//形参:在定义函数的时候，函数括号中定义的变量叫做形参。用来接受实参的。
		//这里是要执行的代码
	}
</script>') ?></code></pre>
	<h2><a>带有返回值的函数</a></h2>
	<p>有时，我们会希望函数将值返回调用它的地方。</p>
	<p>通过使用 return 语句就可以实现。</p>
	<p>在使用 return 语句时，函数会停止执行，并返回指定的值。</p>
 	<pre><code><?php echo htmlspecialchars('
<script type="text/javascript">
	function myFunction(){
		var x=5;
		return x;
	}
	var myVar=myFunction();//这里可以接到函数的返回值5;
</script>') ?></code></pre>
	<p><a>注意:</a><span>如果函数没有返回值，那么这个函数的值就会自动的赋值为<code>undefined</code>,函数中可以写多个<code>return</code>，遇到一个<code>return</code>就会停止执行。
</span></p>
	<h2><a>变量的作用域</a></h2>
	<p>作用域:指变量在代码中的作用范围。</p>
	<h4>全局变量</h4>
	<p>在函数外声明的变量是全局变量，网页上的所有脚本和函数都能访问它。</p>
	<h4>局部变量</h4>
	<p>在 <code>JavaScript</code> 函数内部声明的变量（使用 var）是局部变量，所以只能在函数内部访问它。（该变量的作用域是局部的）。</p>
	<pre><code><?php echo htmlspecialchars('
<script type="text/javascript">

	var xbs ="学并思";//全局变量

	function myFunction(){
		var x=5; //局部变量
		y = 10;  //全局变量
		return x;
	}

	var myVar=myFunction();//这里可以接到函数的返回值5;
	alert(x);//函数外不能使用局部变量
	alert(y);//全局变量，到处可以使用
</script>') ?></code></pre>
	<h2><a>递归函数</a></h2>
	<p>在函数内部直接或间接的调用自己。</p>
	<pre><code><?php echo htmlspecialchars('
<script type="text/javascript">

	var num = 5;
	var total = 1; 
	function a(num){
		if(num >1){
			total = total*num;  
			a(--num);
		}
	}
	a(5);//5的阶乘
	alert(num);

</script>') ?></code></pre>
	<h3>作业</h3>
	<blockquote>
	<p>创建一个递归函数，实现1+2+3+......+99+100</p>
	</blockquote>
</article>





